package it.aekidna.cleverplatypus.dataservice
{
	[RemoteClass('ValueObjectPropertiesMaskProperty')]
	/**
	 * holds information for a ValueObjectPropertiesMask's non basic property's mask.<br>
	 * For instance if a <code>Person</code> class has an <code>address : Address</code> property,
	 * the person object's mask will have an entry in the <code>objects</code> property:
	 * <listing>
	 * objects[ "address" ] = aPropertyMask;
	 * </listing>
	 * where aPropertyMask is a ValueObjectPropertiesMaskProperty object with mask = 
	 * a ValueObjectPropertiesMask describing masking for the <code>Address</code> object.
	 */  
	public class ValueObjectPropertiesMaskProperty
	{
		/**
		 * if the [object : T] masked by <code>mask</code> has properties of type T
		 * and <code>recursive</code> == true, <code>mask</code> will be used for all
		 * the descendent properties of type T.<br>
		 * For instance, with a <code>Folder</code> object contains a <code>parent</code> property of type <code>Folder</code>,
		 * the developer might want to tell the server to recursively resolve all the <code>parent</code> properties
		 * so to get the whole hierarchical chain of folders until the root. 
		 */
	    public var recursive : Boolean = false;
	    
	    /**
	    * the mask for the non basic property in a ValueObjectPropertiesMask <code>objects</code> entry
	    */ 
	    public var  mask : ValueObjectPropertiesMask = new ValueObjectPropertiesMask();
	}
}